import Vue from 'vue'
import {imgArr} from "./mockImgArr";

/**
 * 检测字符串长度不少于？并且也不大于？
 * @param txt 字符串
 * @param min 最小长度
 * @param max 最大长度
 * @returns {*} 布尔值 true false
 */
export function checkMinToMaxLenTxt(txt, min, max) {
  // 判断如果为 null 或 undefined 直接返回 false
  if(txt === null || txt == undefined) {
    return false;
  }

  return txt.length > min && txt.length < max;
}

/**
 * 判断数据对象为空
 * @param data 数据
 * @returns {boolean}
 */
export function objArrIsNull(data) {
  // 判断为空
  if(data == null || data == undefined) return true
  // 判断为数据
  if(Array.isArray(data)) {
    return data.length == 0;
  } else { //判断为对象
    return JSON.stringify(data) == "{}";
  }
}

/**
 * 日期格式化
 * @param date
 * @param fmt
 * @returns {*}
 */
export function formatDate(date, fmt) {
  if(/(y+)/.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
  }
  let o = {
    'M+': addZero(date.getMonth() + 1),
    'd+': addZero(date.getDate()),
    'h+': addZero(date.getHours()),
    'm+': addZero(date.getMinutes()),
    's+': addZero(date.getSeconds())
  };

  function addZero(num) {
    return num < 10 ? '0' + num : num;
  }

  // 遍历这个对象
  for(let k in o) {
    if(new RegExp(`(${k})`).test(fmt)) {
      let str = o[k] + '';
      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));
    }
  }
  function padLeftZero(str) {
    return('00' + str).substr(str.length);
  }
  return fmt;
}

/**
 * 检测是否登录
 * @param Ths Vue this
 * @param accountSta 0 => 跳转到登录
 */
export function checkIsLogin(Ths, accountSta) {
    if(accountSta === 0) {
        Ths.$router.push('/login')
    }
}

/**
 * 生成模拟网络图片
 * @param key
 * @param index
 * @returns {string | * | number | string | Date | IDBArrayKey}
 */
export function createContentDetail(key, index) {
    return imgArr[key][index]
}